home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / dsp / dspgroup / asms.arc / HILBERT.ASM < prev    next >
Encoding:
Assembly Source File  |  1987-04-18  |  6.1 KB  |  387 lines

  1. ;************************************************************
  2. ;             FILTER STRUCTURE
  3. ;
  4. ;
  5. ;
  6. ;             FINITE IMPULSE RESPONSE (FIR)
  7. ;          LINEAR PHASE DIGITAL FILTER DESIGN
  8. ;               REMEZ EXCHANGE ALGORITHM
  9. ;
  10. ;                 HILBERT TRANSFORMER
  11. ;
  12. ;                  FILTER LENGTH =  50
  13. ;
  14. ;             ***** IMPULSE RESPONSE *****
  15. ;           H( 1) =   .13162560E+00 = -H( 50)
  16. ;           H( 2) =   .89106710E-01 = -H( 49)
  17. ;           H( 3) =  -.13654400E+00 = -H( 48)
  18. ;           H( 4) =  -.14179820E-01 = -H( 47)
  19. ;           H( 5) =  -.44728550E-01 = -H( 46)
  20. ;           H( 6) =  -.55178160E-01 = -H( 45)
  21. ;           H( 7) =  -.42822250E-02 = -H( 44)
  22. ;           H( 8) =  -.63906710E-01 = -H( 43)
  23. ;           H( 9) =   .96562650E-02 = -H( 42)
  24. ;           H(10) =  -.56198930E-01 = -H( 41)
  25. ;           H(11) =   .10118810E-01 = -H( 40)
  26. ;           H(12) =  -.38664480E-01 = -H( 39)
  27. ;           H(13) =   .36292080E-02 = -H( 38)
  28. ;           H(14) =  -.13893960E-01 = -H( 37)
  29. ;           H(15) =  -.62213840E-02 = -H( 36)
  30. ;           H(16) =   .17244380E-01 = -H( 35)
  31. ;           H(17) =  -.16327770E-01 = -H( 34)
  32. ;           H(18) =   .54069490E-01 = -H( 33)
  33. ;           H(19) =  -.21842140E-01 = -H( 32)
  34. ;           H(20) =   .97363050E-01 = -H( 31)
  35. ;           H(21) =  -.14074010E-01 = -H( 30)
  36. ;           H(22) =   .15518270E+00 = -H( 29)
  37. ;           H(23) =   .34628240E-01 = -H( 28)
  38. ;           H(24) =   .29468500E+00 = -H( 27)
  39. ;           H(25) =   .54447590E+00 = -H( 26)
  40. ;
  41. ;                       BAND  1       BAND  2       BAND  3       
  42. ; LOWER BAND EDGE      .0000000      .0290000      .4600000
  43. ; UPPER BAND EDGE      .0200000      .4500000      .5000000
  44. ; DESIRED VALUE        .0000000     1.0000000      .0000000
  45. ; WEIGHTING          10.0000000     1.0000000    10.0000000
  46. ; DEVIATION            .0489696      .4896959      .0489696
  47. ;
  48. ; EXTREMAL FREQUENCIES--MAXIMA OF THE ERROR CURVE
  49. ;     .0116667    .0200000    .0290000    .0465000    .0681666
  50. ;     .0898333    .1106666    .1323332    .1531665    .1739999
  51. ;     .1948332    .2156665    .2364998    .2573331    .2781664
  52. ;     .2998331    .3206664    .3414997    .3631664    .3856663
  53. ;     .4073330    .4314996    .4500000    .4600000    .4691667
  54. ;     .5000000
  55. ;
  56. ;***********************************************************
  57. ;
  58. ;
  59. XN:    EQU 0
  60. XNM1:    EQU 1
  61. XNM2:    EQU 2
  62. XNM3:    EQU 3
  63. XNM4:    EQU 4
  64. XNM5:    EQU 5
  65. XNM6:    EQU 6
  66. XNM7:    EQU 7
  67. XNM8:    EQU 8
  68. XNM9:    EQU 9
  69. XNM10:    EQU 10
  70. XNM11:    EQU 11
  71. XNM12:    EQU 12
  72. XNM13:    EQU 13
  73. XNM14:    EQU 14
  74. XNM15:    EQU 15
  75. XNM16:    EQU 16
  76. XNM17:    EQU 17
  77. XNM18:    EQU 18
  78. XNM19:    EQU 19
  79. XNM20:    EQU 20
  80. XNM21:    EQU 21
  81. XNM22:    EQU 22
  82. XNM23:    EQU 23
  83. XNM24:    EQU 24
  84. XNM25:    EQU 25
  85. XNM26:    EQU 26
  86. XNM27:    EQU 27
  87. XNM28:    EQU 28
  88. XNM29:    EQU 29
  89. XNM30:    EQU 30
  90. XNM31:    EQU 31
  91. XNM32:    EQU 32
  92. XNM33:    EQU 33
  93. XNM34:    EQU 34
  94. XNM35:    EQU 35
  95. XNM36:    EQU 36
  96. XNM37:    EQU 37
  97. XNM38:    EQU 38
  98. XNM39:    EQU 39
  99. XNM40:    EQU 40
  100. XNM41:    EQU 41
  101. XNM42:    EQU 42
  102. XNM43:    EQU 43
  103. XNM44:    EQU 44
  104. XNM45:    EQU 45
  105. XNM46:    EQU 46
  106. XNM47:    EQU 47
  107. XNM48:    EQU 48
  108. XNM49:    EQU 49
  109. ;
  110. H0:    EQU 50
  111. H1:    EQU 51
  112. H2:    EQU 52
  113. H3:    EQU 53
  114. H4:    EQU 54
  115. H5:    EQU 55
  116. H6:    EQU 56
  117. H7:    EQU 57
  118. H8:    EQU 58
  119. H9:    EQU 59
  120. H10:    EQU 60
  121. H11:    EQU 61
  122. H12:    EQU 62
  123. H13:    EQU 63
  124. H14:    EQU 64
  125. H15:    EQU 65
  126. H16:    EQU 66
  127. H17:    EQU 67
  128. H18:    EQU 68
  129. H19:    EQU 69
  130. H20:    EQU 70
  131. H21:    EQU 71
  132. H22:    EQU 72
  133. H23:    EQU 73
  134. H24:    EQU 74
  135. ;
  136. MODE:    EQU 75
  137. CLOCK:    EQU 76
  138. MASK1:    EQU 77
  139. MASK2:    EQU 78
  140. TEMPHI:    EQU 79
  141. TEMPLO:    EQU 80
  142. YN:    EQU 89
  143. ONE:    EQU 90
  144. ;
  145.     ORG 0
  146. ;
  147.     B START
  148. ;
  149. ; COEFFICIENTS ARE INITIALLY ;
  150. ; STORED IN PROGRAM MEMORY   ;
  151. ;
  152. ; DUE TO THE SYMMETRY OF THE IMPULSE RESPONSE ;
  153. ; ONLY HALF OF THE SAMPLES OF THE IMPULSE     ;
  154. ; RESPONSE ARE STORED.    THIS MEANS THAT       ;
  155. ; h(N-1-n) = h(n).                  ;
  156. COEF:
  157.     dw    -4313;            H( 1) =   .13162560E+00 = -H( 50)
  158.     dw    -2919;            H( 2) =   .89106710E-01 = -H( 49)
  159.     dw    4474
  160.     dw    465
  161.     dw    1466
  162.     dw    1808
  163.     dw    140
  164.     dw    2094
  165.     dw    -316
  166.     dw    1841
  167.     dw    -332
  168.     dw    1267
  169.     dw    -119
  170.     dw    455
  171.     dw    204
  172.     dw    -565
  173.     dw    535
  174.     dw    -1771
  175.     dw    716
  176.     dw    -3190
  177.     dw    461
  178.     dw    -5085
  179.     dw    -1135
  180.     dw    -9656
  181.     dw    -17841
  182.     dw    000AH
  183.     dw     0200H
  184.     dw    0800H
  185. ENDC:    dw    08000H
  186. ;
  187.  
  188. START:    LDPK 0
  189. ;
  190.     LACK 1
  191.     SACL ONE    ; CONTENT OF ONE IS 1 ;
  192. ;
  193.     LARK AR0,MASK2    ; THIS SECTION OF CODE LOADS  ;
  194.     LARK AR1,1DH    ; THE FILTER COEFFICIENTS AND ;
  195.     LACK ENDC    ; OTHER VALUES FROM PROGRAM   ;
  196. LOAD:    LARP AR0    ; MEMORY TO DATA MEMORY       ;
  197.     TBLR *-,AR1
  198.     SUB ONE
  199.     BANZ LOAD
  200. ;
  201.     NOP
  202.     NOP
  203. ;
  204. WAIT:    BIOZ NXTPT    ; BIO PIN GOES LOW WHEN A ;
  205.     B WAIT        ; NEW SAMPLE IS AVAILABLE ;
  206. ;
  207. NXTPT:    IN XN,PA3    ; BRING IN THE NEW SAMPLE XN ;
  208.     LAC XN,4
  209.     SUB ONE,15
  210.     SACL XN,0
  211. ;
  212.     ZAC
  213. ;
  214.     LT XNM49    ; DUE TO SYMMETRY h(0) = -h(79) ;
  215.     MPY H0        ; x(n-79) * -h(79) ;
  216. ;
  217.     LTD XNM48
  218.     MPY H1        ; h(1) = -h(78) ;
  219. ;
  220.     LTD XNM47
  221.     MPY H2
  222. ;
  223.     LTD XNM46
  224.     MPY H3
  225. ;
  226.     LTD XNM45
  227.     MPY H4
  228. ;
  229.     LTD XNM44
  230.     MPY H5
  231. ;
  232.     LTD XNM43
  233.     MPY H6
  234. ;
  235.     LTD XNM42
  236.     MPY H7
  237. ;
  238.     LTD XNM41
  239.     MPY H8
  240. ;
  241.     LTD XNM40
  242.     MPY H9
  243. ;
  244.     LTD XNM39
  245.     MPY H10
  246. ;
  247.     LTD XNM38
  248.     MPY H11
  249. ;
  250.     LTD XNM37
  251.     MPY H12
  252. ;
  253.     LTD XNM36
  254.     MPY H13
  255. ;
  256.     LTD XNM35
  257.     MPY H14
  258. ;
  259.     LTD XNM34
  260.     MPY H15
  261. ;
  262.     LTD XNM33
  263.     MPY H16
  264. ;
  265.     LTD XNM32
  266.     MPY H17
  267. ;
  268.     LTD XNM31
  269.     MPY H18
  270. ;
  271.     LTD XNM30
  272.     MPY H19
  273. ;
  274.     LTD XNM29
  275.     MPY H20
  276. ;
  277.     LTD XNM28
  278.     MPY H21
  279. ;
  280.     LTD XNM27
  281.     MPY H22
  282. ;
  283.     LTD XNM26
  284.     MPY H23
  285. ;
  286.     LTD XNM25
  287.     MPY H24
  288. ;
  289.     APAC
  290.     SACH TEMPHI,0
  291.     SACL TEMPLO,0
  292.     ZAC
  293. ;
  294.     LT XNM24
  295.     MPY H24
  296. ;
  297.     LTD XNM23
  298.     MPY H23
  299. ;
  300.     LTD XNM22
  301.     MPY H22
  302. ;
  303.     LTD XNM21
  304.     MPY H21
  305. ;
  306.     LTD XNM20
  307.     MPY H20
  308. ;
  309.     LTD XNM19
  310.     MPY H19
  311. ;
  312.     LTD XNM18
  313.     MPY H18
  314. ;
  315.     LTD XNM17
  316.     MPY H17
  317. ;
  318.     LTD XNM16
  319.     MPY H16
  320. ;
  321.     LTD XNM15
  322.     MPY H15
  323. ;
  324.     LTD XNM14
  325.     MPY H14
  326. ;
  327.     LTD XNM13
  328.     MPY H13
  329. ;
  330.     LTD XNM12
  331.     MPY H12
  332. ;
  333.     LTD XNM11
  334.     MPY H11
  335. ;
  336.     LTD XNM10
  337.     MPY H10
  338. ;
  339.     LTD XNM9
  340.     MPY H9
  341. ;
  342.     LTD XNM8
  343.     MPY H8
  344. ;
  345.     LTD XNM7
  346.     MPY H7
  347. ;
  348.     LTD XNM6
  349.     MPY H6
  350. ;
  351.     LTD XNM5
  352.     MPY H5
  353. ;
  354.     LTD XNM4
  355.     MPY H4
  356. ;
  357.     LTD XNM3
  358.     MPY H3
  359. ;
  360.     LTD XNM2
  361.     MPY H2
  362. ;
  363.     LTD XNM1
  364.     MPY H1
  365. ;
  366.     LTD XN
  367.     MPY H0
  368. ;
  369. ;
  370.     APAC
  371. ;
  372.     SUBS TEMPLO
  373.     SUBH TEMPHI
  374.     
  375.     
  376.     SACH YN,1
  377.     LAC YN,12
  378.     ADDH MASK1
  379.     SACH YN,0
  380. ;
  381.     OUT YN,PA4    ; OUTPUT THE FILTER RESPONSE y(n) ;
  382. ;
  383.     B WAIT        ; GO GET THE NEXT POINT ;
  384. ;
  385.     END
  386.